﻿using System;
using System.Collections.Generic;
using System.Text;

namespace net.xBei.WebApi.Configurations {
    /// <summary>
    /// 内部微服务调用配置
    /// </summary>
    [AutoLoadConfigurations("MicroServiceSettings")]
    public class ApiCallerSettings : IAutoLoadConfigurations {
        /// <summary>
        /// 微服务配置，Key为服务名称，Value为服务地址
        /// </summary>
        public IEnumerable<MicroService> Services { get; set; } = default!;

        /// <summary>
        /// 微服务配置
        /// </summary>
        public class MicroService {
            /// <summary>
            /// 微服务名称（简短、唯一）
            /// </summary>
            public string Name { get; set; } = default!;
            /// <summary>
            /// 入口（例如：https://lw.api.xbei.net），如果指定“https://CURRENT”会自动替换成“当前服务地址”
            /// </summary>
            public Uri Endpoint { get; set; } = default!;
            /// <summary>
            /// 默认版本号。示例：{Endpoint}/api/{version}/Token
            /// </summary>
            public string Version { get; set; } = "v1";
            /// <summary>
            /// JWT加密密钥（未指定使用系统默认的）一般无需指定
            /// </summary>
            public string? TokenSecret { get; set; }
        }
    }
}
